iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0

大家好~ 我是 Eric 今天我們來探討一個看似簡單但實則充滿陷阱的主題,如何在 JavaScript 中判斷一個數字是否為奇數。你可能會覺得這很簡單,但實際上,還有一些細節需要注意。讓我們逐一看看吧!

第一種寫法:忽略負數

首先,我們嘗試了一個最直觀的方法。

function isOdd(n) {
    return n % 2 === 1;
}
console.log(isOdd(3)); // true

這看起來很不錯,對吧?但當我們嘗試負數時,情況就不同了。

console.log(isOdd(-3)); // false,應該要是 true 才對

第二種寫法:考慮負數但忽略小數

那麼,我們修改一下代碼,讓它也能處理負數。

function isOdd(n) {
    return n % 2 !== 0;
}
console.log(isOdd(-1)); // true

現在負數看起來沒問題了,但當我們嘗試小數時:
console.log(isOdd(-1.5)); // true,但這是錯的!
這個方法沒有考慮到小數。

第三種寫法:完全版

最後,我們再次修改代碼,這次考慮到了所有情況。

function isOdd(n) {
    return n % 2 === 1 || n % 2 === -1;
}
console.log(isOdd(-1.5)); // false

總結

如你所見,即使是這麼簡單的問題也有不少陷,在實際開發中,總是有各種邊緣情況需要考慮~ 那麼這次的分享就到這邊啦~ 我們明天見~


上一篇
Day19 - 一道解構的面試題
系列文
JavaScript 是什麼?可以吃嗎?20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言